// pages/goods/goods.js
var util = require('../../utils/util.js');
var api = require('../../config/api.js');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    id:0,
    goods:{},//商品数据
    content:'',//详情的富文本
    relatedGoods:[],//大家都在看
    attribute:[],//商品的参数
    issueList:[],//常见问题数据
    comment:[],//评论
    brand:{},//制造商信息
    specificationList:[],//规格列表
    productList:[],//一个商品对应的不同产品
    checkedSpecPrice:0,//商品价格
    checkedSpecText:'规格数量选择',//商品基本信息下面的标准文字
    openAttr:false,//控制规格界面是否显示
    tmpSpecText:'请选择规格数量',
    number:1,//商品的数量
    cartGoodsCount:0,//购物车的数量
  },

  //获取商品信息
  getGoodsInfo:function(){
    let that = this;
    util.request(api.GoodsDetail,{
      id:that.data.id
    }).then(function(res){
      if(res.errno === 0){
        that.setData({
          goods:res.data.info,
          content:res.data.info.detail.replace(/\<img/gi,'<img class="diy-img"'),
          attribute:res.data.attribute,
          issueList:res.data.issue,
          comment:res.data.comment,
          brand:res.data.brand,
          specificationList:res.data.specificationList,
          productList:res.data.productList,
          checkedSpecPrice:res.data.info.retailPrice,
        });
        //获取大家都在看的相关产品
        that.getGoodsRelated();
      }
    })
  },

  //获取大家都在看的相关产品
  getGoodsRelated:function(){
    let that = this;
    util.request(api.GoodsRelated,{
      id:that.data.id
    }).then(function(res){
      if(res.errno===0){
        that.setData({
          relatedGoods:res.data.goodsList
        })
      }
    })
  },

  //切换规格选择弹窗是否显示
  switchAttrPop:function(){
    if(this.data.openAttr == false){
      this.setData({
        openAttr:!this.data.openAttr
      })
    }
  },

  //关闭弹窗
  closeAttr:function(){
    this.setData({
      openAttr:false,
    })
  },

  // 点击不同规格
  clickSkuValue: function (event) {
    let specName = event.currentTarget.dataset.name;
    let specValueId = event.currentTarget.dataset.valueId;
    let _specificationList = this.data.specificationList;
    for (let i = 0; i < _specificationList.length; i++) {
      if (_specificationList[i].name === specName) {
        for (let j = 0; j < _specificationList[i].valueList.length; j++) {
          if (_specificationList[i].valueList[j].id == specValueId) {
            //如果已经选中，则反选
            if (_specificationList[i].valueList[j].checked) {
              _specificationList[i].valueList[j].checked = false;
            } else {
              _specificationList[i].valueList[j].checked = true;
            }
          } else {
            _specificationList[i].valueList[j].checked = false;
          }
        }
      }
    }
    this.setData({
      specificationList: _specificationList,
    });
    //重新改变Spec信息
    this.changeSpecInfo()
  },

  // 获取选中的规格信息
  getCheckedSpecValue:function(){
    let checkedValues = [];
    let _specificationList = this.data.specificationList;
    for(let i = 0;i < _specificationList.length;i++){
      let _checkedObj = {
        name:_specificationList[i].name,
        valueId:0,
        valueText:''
      };
      for(let j = 0;j < _specificationList[i].valueList.length;j++){
        if(_specificationList[i].valueList[j].checked){
          _checkedObj.valueId = _specificationList[i].valueList[j].id;
          _checkedObj.valueText = _specificationList[i].valueList[j].value;
        }
      }
      checkedValues.push(_checkedObj)
    }
    return checkedValues;
  },

  // 判断规格是否完整
  isCheckedAllSpec:function(){
    return !this.getCheckedSpecValue().some(function(v){
      if(v.valueId == 0){
        return true;
      }
    })
  },

  //规格改变时，重新计算价格及显示信息
  changeSpecInfo:function(){
    let checkedNameValue = this.getCheckedSpecValue();
    // 设置选择的信息
    let checkValue = checkedNameValue.filter(function(v){
      if(v.valueId != 0){
        return true;
      }else{
        return false
      }
    }).map(function(v){
      return v.valueText;
    });
    if(checkValue.length > 0){
      this.setData({
        tmpSpecText:checkValue.join(' ')
      });
    }else{
      this.setData({
        tmpSpecText:'请选择规格数量'
      })
    }
    //设置商品基本信息下面的状态
    if(this.isCheckedAllSpec()){
      this.setData({
        checkedSpecText:this.data.tmpSpecText
      })
    }
  },

  //点击-1
  cutNumber:function(){
    this.setData({
      number:(this.data.number - 1 > 1) ? this.data.number - 1 : 1
    })
  },

  //点击+1
  addNumber:function(){
    this.setData({
      number:this.data.number + 1
    })
  },

  //点击跳转购物车
  openCartPage(){
    wx.switchTab({
      url: '/pages/cart/cart',
    })
    
    // util.request(api.CartAdd,{
    //   goods:this.data.goods.id,
    //   number:this.data.number,
    // },'POST').then(function(res){
    //   if(res.errno==0){
    //     wx.showToast({
    //       title: '添加成功',
    //       url:'/pages/cart/cart'
    //     })
    //   }
    // })
  },

  addToCart: function () {
    var that = this;
    if (this.data.openAttr == false) {
      //打开规格选择窗口
      this.setData({
        openAttr: !this.data.openAttr
      });
    } else {
      //添加到购物车
      util.request(api.CartAdd, {
        goodsId: this.data.goods.id,
        number: this.data.number,
        productId:this.data.productList[0].id
      }, "POST")
        .then(function (res) {
          let _res = res;
          if (_res.errno == 0) {
            wx.showToast({
              title: '添加成功'
            });
          } else {
            console.log(1);
          }
        });
    }

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    if(options.id){
      this.setData({
        id:parseInt(options.id)
      });
      this.getGoodsInfo();
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})